package v3

import (
	"context"
	"github.com/wechatpay-apiv3/wechatpay-go/core"
	"github.com/wechatpay-apiv3/wechatpay-go/core/option"
	"github.com/wechatpay-apiv3/wechatpay-go/utils"
	"log"
	"xialou_platform/app/wxpay"
)

func NewWxPayClient(ctx context.Context, conf wxpay.WxPayConf) (*core.Client, error) {
	// 使用 utils 提供的函数从本地文件中加载商户私钥，商户私钥会用来生成请求的签名
	mchPrivateKey, err := utils.LoadPrivateKeyWithPath("D:\\gopath\\src\\xialou_platform\\app\\wxpay\\v3\\apiclient_key.pem")
	if err != nil {
		log.Print("load merchant private key error")
	}

	// 使用商户私钥等初始化 client，并使它具有自动定时获取微信支付平台证书的能力
	opts := []core.ClientOption{
		option.WithWechatPayAutoAuthCipher(conf.MchId, conf.SerialNo, mchPrivateKey, conf.APIv3Key),
	}
	return core.NewClient(ctx, opts...)
}
